\hypertarget{classDENSOrobot}{\section{D\-E\-N\-S\-Orobot Class Reference}
\label{classDENSOrobot}\index{D\-E\-N\-S\-Orobot@{D\-E\-N\-S\-Orobot}}
}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classDENSOrobot_a5beca478787dc5b7f6ae16e66dd42d08}{{\bfseries D\-E\-N\-S\-Orobot} (int use\-\_\-\-R\-S232\-\_\-flg=0)}\label{classDENSOrobot_a5beca478787dc5b7f6ae16e66dd42d08}

\item 
\hyperlink{classDENSOrobot_a9898bc5a0aacfb16357bd10ba8f1e98b}{D\-E\-N\-S\-Orobot} (const Mat Init\-Pose, int use\-\_\-\-R\-S232\-\_\-flg=0)
\begin{DoxyCompactList}\small\item\em Default initialization of Init\-Pose is J\-Pose. \end{DoxyCompactList}\item 
void \hyperlink{classDENSOrobot_a8fce3794ab1ed852a89c83ce696a3a91}{F\-Kine\-Solve} (const Mat fi, Mat \&A)
\begin{DoxyCompactList}\small\item\em Forward kinematic calculation. \end{DoxyCompactList}\item 
void \hyperlink{classDENSOrobot_a5164224696e69166a27d4fddae141e86}{F\-Kine\-Solve} (const Mat fi, Mat \&e, Mat \&B, Mat \&A)
\begin{DoxyCompactList}\small\item\em Forward kinematic calculation. \end{DoxyCompactList}\item 
void \hyperlink{classDENSOrobot_acd6cd29757ffbb8ed538f64a444eecda}{I\-Kine\-Solve} (const Mat fnlpose, Mat \&S\-O\-L)
\begin{DoxyCompactList}\small\item\em Inverse kinematic module. \end{DoxyCompactList}\item 
char \hyperlink{classDENSOrobot_a6bef1fee42dbb8ca0fb4964cc717cae4}{check\-S\-O\-L} (Mat \&joints)
\begin{DoxyCompactList}\small\item\em check a joint pose whether it is within workrange \end{DoxyCompactList}\item 
\hypertarget{classDENSOrobot_abe4c148d01e205345d20b0fd857360e1}{int {\bfseries check\-Out} (Mat \&joints)}\label{classDENSOrobot_abe4c148d01e205345d20b0fd857360e1}

\item 
\hypertarget{classDENSOrobot_adebd80caffd0e9394eb8f2da6c63d3a9}{Mat {\bfseries rotx} (double fi)}\label{classDENSOrobot_adebd80caffd0e9394eb8f2da6c63d3a9}

\item 
\hypertarget{classDENSOrobot_a8659e854b91761e34175257be7ac6a53}{Mat {\bfseries roty} (double fi)}\label{classDENSOrobot_a8659e854b91761e34175257be7ac6a53}

\item 
\hypertarget{classDENSOrobot_aeb80fc32624e66778f938aad96372a63}{Mat {\bfseries rotz} (double fi)}\label{classDENSOrobot_aeb80fc32624e66778f938aad96372a63}

\item 
int \hyperlink{classDENSOrobot_a348a77f48e98fe738f6ec02c087f02be}{Traj\-Planner} (const Mat Org\-Pose, const Mat Dest\-Pose, Mat \&Best\-Traj)
\begin{DoxyCompactList}\small\item\em path planning/selection to destination pose (Dst\-Pose) and perform the move \end{DoxyCompactList}\item 
int \hyperlink{classDENSOrobot_aeaa7ab13e9d6aac7a77c9f24ec0280aa}{J\-Traj\-Planner} (const Mat Dst\-Pose)
\begin{DoxyCompactList}\small\item\em Joint Control -\/ check workspace condition and send to R\-S232. \end{DoxyCompactList}\item 
void \hyperlink{classDENSOrobot_a944988dc9d3cb0ff685b8cc3a18b2dce}{get\-Vel\-Jacob} (Mat \&Jacob, Mat \&A\-\_\-16)
\begin{DoxyCompactList}\small\item\em (03/06/13) return Velocity Jacobian in m and rad \end{DoxyCompactList}\item 
void \hyperlink{classDENSOrobot_aee855f953dbe3d2f93348a7645b2d7bf}{update\-J\-Pose} (const Mat J\-Pose\-\_\-inp)
\begin{DoxyCompactList}\small\item\em update joint state value directly from caller, deprecated by 14/10/14 and replaced by input\-Pose \end{DoxyCompactList}\item 
\hypertarget{classDENSOrobot_a7045801d239f581641c6a9f36b380314}{int {\bfseries input\-Pose} (const Mat Pose\-\_\-inp, int mode=C\-T\-R\-L\-\_\-\-M\-O\-D\-E\-\_\-\-J\-O\-I\-N\-T)}\label{classDENSOrobot_a7045801d239f581641c6a9f36b380314}

\item 
\hypertarget{classDENSOrobot_a6588c54149a92eac21dfc676a44e5fdf}{void {\bfseries calc\-Joint\-Rate} ()}\label{classDENSOrobot_a6588c54149a92eac21dfc676a44e5fdf}

\item 
\hypertarget{classDENSOrobot_ac56c2da7e65a7fd702de5dfb69d9f602}{void {\bfseries calc\-J\-Pose1} (const Mat theta\-\_\-d, const Mat J\-Pose0, Mat \&J\-Pose1)}\label{classDENSOrobot_ac56c2da7e65a7fd702de5dfb69d9f602}

\item 
\hypertarget{classDENSOrobot_a04431ff10f438fd075b166d495514e5b}{void {\bfseries calc\-Pose1} (const Mat theta\-\_\-d, const Mat J\-Pose0, Mat \&J\-Pose1, int mode)}\label{classDENSOrobot_a04431ff10f438fd075b166d495514e5b}

\item 
\hypertarget{classDENSOrobot_a051e0642439d12c488996230ee74f7a6}{int {\bfseries Vel\-Ctrl} (const cv\-::\-Mat Vel\-Screw)}\label{classDENSOrobot_a051e0642439d12c488996230ee74f7a6}

\item 
int \hyperlink{classDENSOrobot_a1773a06769ec32d82bb3d37841e5adef}{Vel\-Ctrl} (const Mat Vel\-Screw, int mode)
\begin{DoxyCompactList}\small\item\em ... \end{DoxyCompactList}\item 
\hypertarget{classDENSOrobot_a93f785a25d3fc8fe897040a15a54b592}{void {\bfseries calc\-J\-Pose1} (const Mat theta\-\_\-d, const Mat J\-Pose0, Mat J\-Pose1)}\label{classDENSOrobot_a93f785a25d3fc8fe897040a15a54b592}

\item 
\hypertarget{classDENSOrobot_af206a39c8426bab89749443a3986eb9c}{int {\bfseries llv2int\-Coord\-Sys} (cv\-::\-Mat \&Pose, int mode)}\label{classDENSOrobot_af206a39c8426bab89749443a3986eb9c}

\end{DoxyCompactItemize}
\subsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classDENSOrobot_a901e76b5157649dbbcc03bc38e09911c}{Mat {\bfseries Pose}}\label{classDENSOrobot_a901e76b5157649dbbcc03bc38e09911c}

\item 
\hypertarget{classDENSOrobot_ac69adaf42f760d5be2ec48c5b9627831}{Mat {\bfseries J\-Pose}}\label{classDENSOrobot_ac69adaf42f760d5be2ec48c5b9627831}

\item 
\hypertarget{classDENSOrobot_acf3f55a31ab8ef6d23f5e53c694dbc02}{Mat {\bfseries C\-Pose}}\label{classDENSOrobot_acf3f55a31ab8ef6d23f5e53c694dbc02}

\item 
\hypertarget{classDENSOrobot_aa2c04551c445885213bb2a7083a20f11}{\hyperlink{structDHtable}{D\-Htable} {\bfseries D\-H}}\label{classDENSOrobot_aa2c04551c445885213bb2a7083a20f11}

\item 
\hypertarget{classDENSOrobot_accd9dddec1b9b220566f4f51c6aed5ff}{int {\bfseries use\-\_\-\-R\-S232}}\label{classDENSOrobot_accd9dddec1b9b220566f4f51c6aed5ff}

\end{DoxyCompactItemize}
\subsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item 
\hypertarget{classDENSOrobot_aa5f20a9bea84018f61acd10bc45f02ca}{static int {\bfseries C\-T\-R\-L\-\_\-\-M\-O\-D\-E\-\_\-\-J\-O\-I\-N\-T} = 0}\label{classDENSOrobot_aa5f20a9bea84018f61acd10bc45f02ca}

\item 
\hypertarget{classDENSOrobot_a6e54d3f2d6b8af98ac158adcddabacd0}{static int {\bfseries C\-T\-R\-L\-\_\-\-M\-O\-D\-E\-\_\-\-X\-Y\-Z} = 1}\label{classDENSOrobot_a6e54d3f2d6b8af98ac158adcddabacd0}

\end{DoxyCompactItemize}


\subsection{Constructor \& Destructor Documentation}
\hypertarget{classDENSOrobot_a9898bc5a0aacfb16357bd10ba8f1e98b}{\index{D\-E\-N\-S\-Orobot@{D\-E\-N\-S\-Orobot}!D\-E\-N\-S\-Orobot@{D\-E\-N\-S\-Orobot}}
\index{D\-E\-N\-S\-Orobot@{D\-E\-N\-S\-Orobot}!DENSOrobot@{D\-E\-N\-S\-Orobot}}
\subsubsection[{D\-E\-N\-S\-Orobot}]{\setlength{\rightskip}{0pt plus 5cm}D\-E\-N\-S\-Orobot\-::\-D\-E\-N\-S\-Orobot (
\begin{DoxyParamCaption}
\item[{const Mat}]{Init\-Pose, }
\item[{int}]{use\-\_\-\-R\-S232\-\_\-flg = {\ttfamily 0}}
\end{DoxyParamCaption}
)}}\label{classDENSOrobot_a9898bc5a0aacfb16357bd10ba8f1e98b}


Default initialization of Init\-Pose is J\-Pose. 


\begin{DoxyParams}{Parameters}
{\em Init\-Pose} & ... \\
\hline
{\em use\-\_\-\-R\-S232\-\_\-flg} & ... \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\hypertarget{classDENSOrobot_a6bef1fee42dbb8ca0fb4964cc717cae4}{\index{D\-E\-N\-S\-Orobot@{D\-E\-N\-S\-Orobot}!check\-S\-O\-L@{check\-S\-O\-L}}
\index{check\-S\-O\-L@{check\-S\-O\-L}!DENSOrobot@{D\-E\-N\-S\-Orobot}}
\subsubsection[{check\-S\-O\-L}]{\setlength{\rightskip}{0pt plus 5cm}char D\-E\-N\-S\-Orobot\-::check\-S\-O\-L (
\begin{DoxyParamCaption}
\item[{Mat \&}]{joints}
\end{DoxyParamCaption}
)}}\label{classDENSOrobot_a6bef1fee42dbb8ca0fb4964cc717cae4}


check a joint pose whether it is within workrange 


\begin{DoxyParams}{Parameters}
{\em joints} & joint pose input \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
char 
\end{DoxyReturn}
\hypertarget{classDENSOrobot_a8fce3794ab1ed852a89c83ce696a3a91}{\index{D\-E\-N\-S\-Orobot@{D\-E\-N\-S\-Orobot}!F\-Kine\-Solve@{F\-Kine\-Solve}}
\index{F\-Kine\-Solve@{F\-Kine\-Solve}!DENSOrobot@{D\-E\-N\-S\-Orobot}}
\subsubsection[{F\-Kine\-Solve}]{\setlength{\rightskip}{0pt plus 5cm}void D\-E\-N\-S\-Orobot\-::\-F\-Kine\-Solve (
\begin{DoxyParamCaption}
\item[{const Mat}]{fi, }
\item[{Mat \&}]{A}
\end{DoxyParamCaption}
)}}\label{classDENSOrobot_a8fce3794ab1ed852a89c83ce696a3a91}


Forward kinematic calculation. 


\begin{DoxyParams}{Parameters}
{\em fi} & 6 joint angles in low level controller coord. sys. \\
\hline
{\em A} & A\-\_\-i which are all in internal coord. sys. (ref. to the original diagram (hand writing)) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}
\hypertarget{classDENSOrobot_a5164224696e69166a27d4fddae141e86}{\index{D\-E\-N\-S\-Orobot@{D\-E\-N\-S\-Orobot}!F\-Kine\-Solve@{F\-Kine\-Solve}}
\index{F\-Kine\-Solve@{F\-Kine\-Solve}!DENSOrobot@{D\-E\-N\-S\-Orobot}}
\subsubsection[{F\-Kine\-Solve}]{\setlength{\rightskip}{0pt plus 5cm}void D\-E\-N\-S\-Orobot\-::\-F\-Kine\-Solve (
\begin{DoxyParamCaption}
\item[{const Mat}]{fi, }
\item[{Mat \&}]{e, }
\item[{Mat \&}]{B, }
\item[{Mat \&}]{A}
\end{DoxyParamCaption}
)}}\label{classDENSOrobot_a5164224696e69166a27d4fddae141e86}


Forward kinematic calculation. 


\begin{DoxyParams}{Parameters}
{\em fi} & 6 joint angles in low level controller coord. sys. \\
\hline
{\em e} & e1,...,e6 \\
\hline
{\em B} & B1,...,B6 e and B are additional returned arguments for further calculation \\
\hline
{\em A} & A\-\_\-i transformation matrix from ee to base coord. sys. which are all in internal coord. sys. (ref. to the original diagram (hand writing)) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}
\hypertarget{classDENSOrobot_a944988dc9d3cb0ff685b8cc3a18b2dce}{\index{D\-E\-N\-S\-Orobot@{D\-E\-N\-S\-Orobot}!get\-Vel\-Jacob@{get\-Vel\-Jacob}}
\index{get\-Vel\-Jacob@{get\-Vel\-Jacob}!DENSOrobot@{D\-E\-N\-S\-Orobot}}
\subsubsection[{get\-Vel\-Jacob}]{\setlength{\rightskip}{0pt plus 5cm}void D\-E\-N\-S\-Orobot\-::get\-Vel\-Jacob (
\begin{DoxyParamCaption}
\item[{Mat \&}]{Jacob, }
\item[{Mat \&}]{A\-\_\-16}
\end{DoxyParamCaption}
)}}\label{classDENSOrobot_a944988dc9d3cb0ff685b8cc3a18b2dce}


(03/06/13) return Velocity Jacobian in m and rad 


\begin{DoxyParams}{Parameters}
{\em Jacob} & Vel Jacob matrix \\
\hline
{\em A\-\_\-16} & transformation matrix from ee to base coord. sys. which are all in internal coord. sys. (ref. to the original diagram (hand writing)) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}
\hypertarget{classDENSOrobot_acd6cd29757ffbb8ed538f64a444eecda}{\index{D\-E\-N\-S\-Orobot@{D\-E\-N\-S\-Orobot}!I\-Kine\-Solve@{I\-Kine\-Solve}}
\index{I\-Kine\-Solve@{I\-Kine\-Solve}!DENSOrobot@{D\-E\-N\-S\-Orobot}}
\subsubsection[{I\-Kine\-Solve}]{\setlength{\rightskip}{0pt plus 5cm}void D\-E\-N\-S\-Orobot\-::\-I\-Kine\-Solve (
\begin{DoxyParamCaption}
\item[{const Mat}]{fnlpose, }
\item[{Mat \&}]{S\-O\-L}
\end{DoxyParamCaption}
)}}\label{classDENSOrobot_acd6cd29757ffbb8ed538f64a444eecda}


Inverse kinematic module. 


\begin{DoxyParams}{Parameters}
{\em fnlpose} & = \href{in user coord.}{\tt x, y, z, r, p, y} O\-R fnlpose = E = \href{in int. coord.}{\tt nx ox ax x; ny oy ay y; nz oz az z; 0 0 0 1} \\
\hline
{\em S\-O\-L} & returned 8 solutions of inverse kinematic problem \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}
\hypertarget{classDENSOrobot_aeaa7ab13e9d6aac7a77c9f24ec0280aa}{\index{D\-E\-N\-S\-Orobot@{D\-E\-N\-S\-Orobot}!J\-Traj\-Planner@{J\-Traj\-Planner}}
\index{J\-Traj\-Planner@{J\-Traj\-Planner}!DENSOrobot@{D\-E\-N\-S\-Orobot}}
\subsubsection[{J\-Traj\-Planner}]{\setlength{\rightskip}{0pt plus 5cm}int D\-E\-N\-S\-Orobot\-::\-J\-Traj\-Planner (
\begin{DoxyParamCaption}
\item[{const Mat}]{Dst\-Pose}
\end{DoxyParamCaption}
)}}\label{classDENSOrobot_aeaa7ab13e9d6aac7a77c9f24ec0280aa}


Joint Control -\/ check workspace condition and send to R\-S232. 


\begin{DoxyParams}{Parameters}
{\em Dst\-Pose} & = \mbox{[}j1 j2 j3 j4 j5 j6\mbox{]} (rad) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
int 
\end{DoxyReturn}
\hypertarget{classDENSOrobot_a348a77f48e98fe738f6ec02c087f02be}{\index{D\-E\-N\-S\-Orobot@{D\-E\-N\-S\-Orobot}!Traj\-Planner@{Traj\-Planner}}
\index{Traj\-Planner@{Traj\-Planner}!DENSOrobot@{D\-E\-N\-S\-Orobot}}
\subsubsection[{Traj\-Planner}]{\setlength{\rightskip}{0pt plus 5cm}int D\-E\-N\-S\-Orobot\-::\-Traj\-Planner (
\begin{DoxyParamCaption}
\item[{const Mat}]{Org\-Pose, }
\item[{const Mat}]{Dst\-Pose, }
\item[{Mat \&}]{Best\-Traj}
\end{DoxyParamCaption}
)}}\label{classDENSOrobot_a348a77f48e98fe738f6ec02c087f02be}


path planning/selection to destination pose (Dst\-Pose) and perform the move 


\begin{DoxyParams}{Parameters}
{\em Org\-Pose} & = \mbox{[}j1 j2 j3 j4 j5 j6\mbox{]} (rad) -\/$>$ this avoids calculating twice Inv Kine \\
\hline
{\em Dst\-Pose} & \mbox{[}x y z r p y\mbox{]} (rad \& mm) \\
\hline
{\em Best\-Traj} & returned best path selection \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
int 
\end{DoxyReturn}
\hypertarget{classDENSOrobot_aee855f953dbe3d2f93348a7645b2d7bf}{\index{D\-E\-N\-S\-Orobot@{D\-E\-N\-S\-Orobot}!update\-J\-Pose@{update\-J\-Pose}}
\index{update\-J\-Pose@{update\-J\-Pose}!DENSOrobot@{D\-E\-N\-S\-Orobot}}
\subsubsection[{update\-J\-Pose}]{\setlength{\rightskip}{0pt plus 5cm}void D\-E\-N\-S\-Orobot\-::update\-J\-Pose (
\begin{DoxyParamCaption}
\item[{const Mat}]{J\-Pose\-\_\-inp}
\end{DoxyParamCaption}
)}}\label{classDENSOrobot_aee855f953dbe3d2f93348a7645b2d7bf}


update joint state value directly from caller, deprecated by 14/10/14 and replaced by input\-Pose 


\begin{DoxyParams}{Parameters}
{\em J\-Pose\-\_\-inp} & input Pose \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
void 
\end{DoxyReturn}
\hypertarget{classDENSOrobot_a1773a06769ec32d82bb3d37841e5adef}{\index{D\-E\-N\-S\-Orobot@{D\-E\-N\-S\-Orobot}!Vel\-Ctrl@{Vel\-Ctrl}}
\index{Vel\-Ctrl@{Vel\-Ctrl}!DENSOrobot@{D\-E\-N\-S\-Orobot}}
\subsubsection[{Vel\-Ctrl}]{\setlength{\rightskip}{0pt plus 5cm}int D\-E\-N\-S\-Orobot\-::\-Vel\-Ctrl (
\begin{DoxyParamCaption}
\item[{const Mat}]{Vel\-Screw, }
\item[{int}]{mode}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}}\label{classDENSOrobot_a1773a06769ec32d82bb3d37841e5adef}


... 


\begin{DoxyParams}{Parameters}
{\em Vel\-Screw} & control screw \\
\hline
{\em mode} & control mode e.\-g. xyz or joint Defaults to C\-T\-R\-L\-\_\-\-M\-O\-D\-E\-\_\-\-J\-O\-I\-N\-T. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
int 
\end{DoxyReturn}


The documentation for this class was generated from the following files\-:\begin{DoxyCompactItemize}
\item 
D\-E\-N\-S\-Orobot.\-hpp\item 
D\-E\-N\-S\-Orobot.\-cpp\item 
D\-E\-N\-S\-Orobot\-\_\-v1.\-2.\-cpp\end{DoxyCompactItemize}
